package com.example.yyjc.service;

import com.example.yyjc.domain.selectionanalyze.CountrySecondCatCase;
import com.example.yyjc.domain.selectionanalyze.SecondCatGoodsTopTen;
import com.example.yyjc.domain.selectionanalyze.SecondCatShopTopTen;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @ClassName SelectionService
 * @Description TODO
 * @Author lvyongwei
 * @Date 2020-12-1 10:35
 **/
public interface SelectionService {

    /**
     * 获取所有日期 升序
     * @param beginTime
     * @param endTime
     * @return
     */
    public List<String> getAllTimeAsc(@Param("beginTime")String beginTime,@Param("endTime")String endTime);

    /**
     * 获取国家全部月份下的二级类目的规模趋势
     * @param countryName
     * @param firstCatId
     * @return
     */
    public List<CountrySecondCatCase> getSecondCatScale(@Param("countryName")String countryName, @Param("firstCatId")Integer firstCatId,@Param("beginTime")String beginTime,@Param("endTime")String endTime);

    /**
     * 获取某国家下一级类目下二级类目名称
     * @param firstCatId
     * @param countryName
     * @return
     */
    public List<String> getSecondCatName(@Param("firstCatId")Integer firstCatId,@Param("countryName")String countryName);

    /**
     * 获取国家各个月份一级目录下二级目录的销售额
     * @param times
     * @param countryName
     * @param secondCatName
     * @return
     */
    public List<Double> getSecondCatSaleRoom(@Param("times")List<String> times,@Param("countryName")String countryName,@Param("secondCatName")String secondCatName);

    /**
     * 根据二级类目获取top100店铺集中度
     * @param time
     * @param secondCatTitleId
     * @return
     */
    public List<SecondCatShopTopTen> getSecondCatShops(@Param("time")String time,@Param("secondCatTitleId")Integer secondCatTitleId);

    /**
     * 求所有销售总额
     * @param time
     * @param secondCatTitleId
     */
    public double getSecondCatShopsSaleRoom(@Param("time")String time,@Param("secondCatTitleId")Integer secondCatTitleId);

    /**
     * 获取某个国家二级类目的top
     * @param time
     * @param countryName
     * @param secondCatTitleId
     * @return
     */
    public List<SecondCatShopTopTen> getSecondCatShopTop(@Param("time")String time, @Param("countryName")String countryName, @Param("secondCatTitleId")Integer secondCatTitleId);

    /**
     * 获取二级类目某个月份所有商品价格
     * @param time
     * @param secondCatTitleId
     * @return
     */
    public List<SecondCatGoodsTopTen> getAllGoodTop(@Param("time")String time, @Param("secondCatTitleId")Integer secondCatTitleId);


    /**
     * 获取某个二级类目top1国家(物流分析/商品物流分析/销量TOP10国家的各国家TOP3物流渠道)
     * @param time
     * @param secondCatTitleId
     * @return
     */
    public String getCountryName(@Param("time")String time,@Param("secondCatTitleId")Integer secondCatTitleId);

    /**
     * 获取第一国家的top3物流及数据
     * @param time
     * @param secondCatTitleId
     * @param countryName
     * @return
     */
    public List<Map<String,Double>> getTopThreeCount(@Param("time")String time, @Param("secondCatTitleId")Integer secondCatTitleId, @Param("countryName")String countryName);
}
